package main

import "fmt"

//常量,定义后不能修改，在程序运行期间不会改变
const pi = 3.141592658

//批量声明常量
const (
	status = 200
	msg    = "OK"
)

//批量声明常量时，如果某一行声明后没有赋值，默认和上一行一样的值
const (
	n1 = 100
	n2
	n3
)

// iota：常量计数器
// 1.iota在const中出现是被置为0
// 2.每新增一行常量声明，计数+1
const (
	a1 = iota // 0 因为首次在const中出现
	a2        // 默认和上一行一样，然后算是在const中新增的一行常量声明，需要+1
	a3        //
)

const (
	b1 = iota // 0
	b2        // 1
	_         // 2  _ 匿名函数，丢弃值
	b3        // 3
)

//插队
const (
	c1 = iota // 0
	c2 = 100  //100
	c3        //2
	c4        //3
)

//多个常量声明在一行
const (
	d1, d2 = iota + 1, iota + 2 // d1=1,d2=2  iota在const内重置为0
	d3, d4 = iota + 1, iota + 2 // d3=2,d4=3  新增一行常量iota+1
)

//定义数量级
const (
	_  = iota
	KB = 1 << (10 * iota) // <<位运算：表示左移10位
	GB = 1 << (10 * iota)
	TB = 1 << (10 * iota)
	PB = 1 << (10 * iota)
)

func main() {
	fmt.Println(b1)
	fmt.Println(b2)
	fmt.Println(b3)
}
